class Object
{
public:
    Object()
    {

    }
    Object(const Object& obj)
    {
        cout << "Object(const Object& obj)" << endl;
    }
    Object& operator=(const Object& obj)
    {
        cout << "operator=(const Object& obj)" << endl;
        return *this;
    }
    Object(Object&& obj)
    {
        cout << "Object(Object&& obj)" << endl;
    }
    Object& operator=(Object&& obj)
    {
        cout << "operator=(Object&& obj)" << endl;
        return *this;
    }

};

Object getObject()
{
    Object obj;
    return obj; //调用移动拷贝构造函数
}

int main()
{
    Object obj;
    obj = getObject(); //调用移动赋值函数    getObject()的返回值是右值
    return 0;
}